# -*- coding: utf-8 -*-

# === メッセージのフォルダ分類機能用コントローラ
class Portal::MessageFoldersController < ApplicationController
  before_filter :set_message_folder,
                  :only => [:edit, :update, :destroy]

  # === フォルダ一覧の表示
  def index
    @folders = current_user.message_folders
  end

  # === 新規フォルダ作成フォームの表示
  def new
    @message_folder = MessageFolder.new
  end

  # === 既存フォルダの編集フォームの表示
  def edit
  end

  # === 新規フォルダ登録実行
  def create
    @message_folder = MessageFolder.new(params[:message_folder])
    @message_folder.user = current_user
    if @message_folder.save
      redirect_to portal_messages_path,
                   :notice => "新規フォルダを作成しました。"
    else
      render :action => "new"
    end
  end

  # === 既存フォルダの更新実行
  def update
    if @message_folder.update_attributes(params[:message_folder])
      redirect_to portal_messages_path,
                   :notice => "フォルダ情報を更新しました。"
    else
      render :action => "edit"
    end
  end

  # === 既存フォルダの削除実行
  def destroy
    @message_folder.destroy
    redirect_to portal_messages_path,
                 :notice => "フォルダを削除しました。"
  end


  private

  # === 処理対象となるメッセージフォルダレコードの取得
  def set_message_folder
    @message_folder = MessageFolder.find(params[:id])
    unless @message_folder.user == current_user
      redirect_to portal_messages_path,
                   :notice => "所有するフォルダではありません。"
    end
  end
end
